package com.ccjq.jq173.shopping.service;

import com.ccjq.jq173.shopping.po.ShoppingCart;

import java.util.List;

public interface ShoppingCartService {
    /**
     * 获取用户购物车中的内容
     * @param //userId 用户ID
     * @return 返回用户购物车列表
     */
    List<ShoppingCart> queryShoppings(String userId);
    /**
     * 购物车商品价格总计
     * @param //shoppingCarts 购物车商品例表
     * @return 返回所有商品的总计价格*/
    double aggregate(List<ShoppingCart> shoppingCarts);
    /**
     * 删除用户购物车中指定商品
     * @param //shoppingCartId 购物车ID
     * @param //productId   商品Id
     * @param //userId      用户Id*/
    void deleteShoppingCart(String shoppingCartId,String productId,String userId);
    /**
     * 修改购物车中的商品
     * @param //quantity 商品
     * @param //shoppingCartId 购物车Id
     * @param //userId 用户Id*/
    int  updatShoppingCart(int quantity,String productId,String userId);

    /**
     * 添加商品到购物车
     * @param //quantity 商品
     * @param //shoppingCartId 购物车Id
     * @param //userId 用户Id*/
    int saveShoppingCart(int quantity,String shoppingCarId,String userId,String product);

    /**
     * 根据购物车Id获得信息
     * @param shoppingCartId 购物车Id
     * @return 返回指定购物车信息*/
    ShoppingCart queryByCartId(String shoppingCartId);

    /**
     * 结算后  修改库存量
     * @param productId 商品Id
     * @param quantity 销售数量
     * @return
     */
    int updateStack(String productId,int quantity);

    /**
     * 商品订单关联表 为其填数据
     * @param orderId 订单Id
     * @param list 购物车数据 集合
     */
    void updateT_ORDER_PRODUCT(String orderId,List<ShoppingCart> list );
    /**
     *结算信息展示
     * @param payment  支付类型(支付宝，微信)
     * @param amount    总金额
     * @param receiver 收货人姓名
     * @param province 省份
     * @param city 城市
     * @param county 区县
     * @param address 地址
     * @param zipcode 邮政编码
     * @param telphone 联系电话
     * @param userId 用户Id
     * @return
     */
    int settleAccounts(String orderId,
                       int payment,
                       double amount,
                       String receiver,
                       String province,
                       String city,
                       String county,
                       String address,
                       String zipcode,
                       String telphone,
                       String userId);
}
